home *** CD-ROM | disk | FTP | other *** search
- /*
- * REXX-Script für WRITE 3.592 © 1994 by Tim Teulings
- *
- * Dieses Script wird aus WRITE heraus gestartet.
- * Es dient dazu lange Spalten von Zahlen umzunummerrieren.
- * Man startet dieses Script mit dem Cursor auf der Zahl von der man aus
- * umnummerieren möchte.
- * WRITE nummeriert dann in 1er Schritten aufwärts, bis er keine Zahl mehr
- * findet.
- * Er beachtet dabei die aktuelle Formatierung.
- */
-
- IF ~show('P',"WRITE")
- THEN DO
- say "Dieses Script ist zutzlos ohne WRITE !"
- EXIT
- END
-
- ADDRESS WRITE
-
- OPTIONS RESULTS
-
- 'VERSIONCHECK 31090 "Renumber.wrx"'
- IF RC~=0 THEN DO
- exit 10
- END
-
- 'GETVAR "_CurrentID"'
- ID = RESULT
- IF ID=0 THEN DO
- 'MESSAGEOK "REXX-Script\n'Renumber.wrx' :\n\nSie müssen dieses Script\naus WRITE heraus starten !"'
- EXIT
- END
-
- OPENPORT ID /* PrivatePort des aktuellen Fensters öffnen */
- Port = RESULT
-
- IF Port="" THEN DO /* 'OPENPORT' gibt "" zurück, wenn Port nicht */
- /* geöffnet werden konnte */
-
- LOCKWINDOW ID
- END
- ELSE DO
- INTERPRET ADDRESS Port /* PrivatePort addressieren.Alle Komandos beziehen */
- /* sich nun auf das Fenster mit diesem Port */
- END
-
- 'GETVAR "_WordDef"' /* Wortdefinition 1 */
- OldWordDef = RESULT
- 'SETVAR "_WordDef" 1'
-
- 'GETVAR "_CurrentWord"' /* Aktuelles Wort holen */
- Word = RESULT
-
- IF ~DATATYPE(Word,'Numeric') THEN DO
- 'MESSAGEOK "REXX-Script Renumber.wrx :\n\nDer Cursor muß auf\neiner Zahl stehen !"'
- Quit()
- END
-
- SILENT /* Zwecks Geschwindigkeit in den Silent-Mode */
- /* schalten */
-
- 'GETVAR "_xPos"' /* Cursorposition holen */
- OldPos.x = RESULT
- 'GETVAR "_yPos"'
- OldPos.y = RESULT
-
- 'GETVAR "_CurrentChar"' /* Aktuelles Zeichen holen */
- Char = RESULT
-
- DO WHILE DATATYPE(Char,'Numeric') /* Rechten Rand der Zahl suchen */
- CURSORRIGHT 0
- 'GETVAR "_CurrentChar"'
- Char = RESULT
- END
- CURSORLEFT 0
-
- 'GETVAR "_xPos"' /* Wieder aktuelle Cursorposition holen */
- StartPos.x = RESULT
- 'GETVAR "_yPos"'
- StartPos.y = RESULT
-
- MaxLen = 0
- Lines = 0
- 'GETVAR "_CurrentWord"'
- Word = RESULT
- DO WHILE DATATYPE(Word,'Numeric')
- Lines = Lines + 1
- Len = Length(Word)
- IF Len>MaxLen THEN DO
- MaxLen = Len
- END
- CURSORDOWN 0
- 'GETVAR "_CurrentWord"'
- Word = RESULT
- END
-
- GOTO StartPos.x StartPos.y
- 'GETVAR "_CurrentWord"'
- Count = RESULT + 1
-
- DO r = 1 TO Lines-1
- CURSORDOWN 0
-
- GOTO StartPos.x-MaxLen+1 _yPos
-
- DO q = 1 TO MaxLen
- DELETE
- END
-
- ZahlLen = Length(Count)
- GOTO StartPos.x-MaxLen+1 _yPos
- DO q = 1 TO MaxLen-ZahlLen
- 'WRITETEXT " "'
- END
- WRITETEXT "(" || Count || ")"
- Count = Count + 1
- END
-
- GOTO OldPos.x OldPos.y
-
- Quit()
-
- Quit:
-
- 'SETVAR "_WordDef"' OldWordDef /* Alten Wert setzen */
- WINDOW 0 0 0 0 /* Silent-Mode ausschalten */
- IF Port="" THEN DO
- LOCKWINDOW 0
- END
- ELSE DO
- CLOSEPORT ID
- END
- EXIT
-